package simplescenegraph;

import simplescenegraph.math.Matrix3f;
import simplescenegraph.math.Transform;
import simplescenegraph.math.Transformable;
import simplescenegraph.math.Vector3f;

public class View implements Transformable {
	
	private Transform cameraView = new Transform();
	
	private float fov;
	
	private float near;
	
	private float far;
	
	public float getFov() {
		return fov;
	}
	
	public void setFov(float fov) {
		this.fov = fov;
	}
	
	public float getNear() {
		return near;
	}
	
	public void setNear(float near) {
		this.near = near;
	}
	
	public float getFar() {
		return far;
	}
	
	public void setFar(float far) {
		this.far = far;
	}
	
	public Matrix3f getOrientation() {
		return cameraView.getRotate();
	}
	
	public Vector3f getPosition() {
		return cameraView.getTranslate();
	}
	
	public Vector3f getScale() {
		Matrix3f scale = cameraView.getScale();
		return new Vector3f(scale.m[0], scale.m[4], scale.m[8]);
	}
	
	public void rotateAxis(float a0, Vector3f a1) {
		cameraView.rotateAxis(a0, a1);
	}
	
	public void rotateX(float a0) {
		cameraView.rotateX(a0);
	}
	
	public void rotateY(float a0) {
		cameraView.rotateY(a0);
	}
	
	public void rotateZ(float a0) {
		cameraView.rotateZ(a0);
	}
	
	public void scale(float f0, float f1, float f2) {
		cameraView.scale(f0, f1, f2);
	}
	
	public void translate(float f0, float f1, float f2) {
		cameraView.translate(f0, f1, f2);
	}

	public void setPosition(Vector3f position) {
	}
	
}
